"""
Defines Fjork interfaces
"""


from zope import interface


class IFjorkClientProtocol(interface.Interface):
    """
    Basic line receiver that handles a few simple messages
    
    """


class IFjorkClientFactory(interface.Interface):
    """
    """


class IFjorkServerProtocol(interface.Interface):
    """
    """


class IFjorkServerFactory(interface.Interface):
    """
    """


class IFjorkService(interface.Interface):
    """
    """


class IFjork(interface.Interface):
    """
    """


class IPool(interface.Interface):
    """
    """

    def queue(*args):
        """Accepts request specific number of arguments.

        These arguments are passed to the pool member
        responsible for processing a request.
        
        """

    def process():
        """runs the next request in a seperate process
        """

    def processCompleted():
        """when a process completes a request this callback fires
        to queue the next request.

        """


class IFjorkJob(interface.Interface):
    """
    """
    def fjork(**arguments):
        """
        """
